import { defineStore } from 'pinia'
import { ref } from 'vue'
import { useUserStore } from './user'

export const useAuthStore = defineStore(
  'auth',
  () => {
    // 用户角色：admin-管理员，guest-游客
    const userRole = ref<string>('')
    const isLoggedIn = ref<boolean>(false)
    const username = ref<string>('')

    // 不再使用预设的账号密码，改为从user store获取

    // 登录方法
    function login(inputUsername: string, inputPassword: string): boolean {
      const userStore = useUserStore()
      const user = userStore.getUserByUsername(inputUsername)

      if (user && user.password === inputPassword) {
        username.value = user.username
        userRole.value = user.role
        isLoggedIn.value = true
        return true
      }
      return false
    }

    // 登出方法
    function logout(router?: any) {
      username.value = ''
      userRole.value = ''
      isLoggedIn.value = false

      // 如果传入了router参数，则使用它进行导航
      if (router) {
        router.push('/login')
      }
      // 否则不进行导航，由调用者处理
    }

    return {
      userRole,
      isLoggedIn,
      username,
      login,
      logout,
    }
  },
  {
    persist: true, // 持久化存储登录状态
  },
)
